package com.gitee.shigen.gateway.enums;

import lombok.Getter;

/**
 * 负载均衡策略枚举
 */
@Getter
public enum BalancerRuleTypeEnum {
                                  /**
                                   * 随机
                                   */
                                  RANDOM("random", "随机"),
                                  /**
                                   * Nacos权重
                                   */
                                  NACOS_WEIGHTED("nacos_weighted", "nacos权重"),
                                  /** 选择第一个 */
                                  FIRST("first", "选择第一个");

    private final String name;
    private final String desc;

    BalancerRuleTypeEnum(String name, String desc) {
        this.name = name;
        this.desc = desc;
    }

    /**
     * 根据名称获取枚举
     * @param name  名称
     * @return 对应的枚举值
     */
    public static BalancerRuleTypeEnum getByName(String name) {

        for (BalancerRuleTypeEnum ruleTypeEnum : BalancerRuleTypeEnum.values()) {
            if (ruleTypeEnum.getName().equals(name)) {
                return ruleTypeEnum;
            }
        }
        return null;
    }
}
